Field
Embodiments of the invention generally relate to techniques for accessing data in computing applications. More specifically, techniques are disclosed for switching runtime data environments.
Description of the Related Art
Business and government entities frequently have different data sets for different sectors of their business. That is, businesses often own multiple databases containing different sets of data (known as “data environments” or “libraries”) that are similar in format, wherein each library is populated with a distinct set of data. Thus, the format of the data environment is similar in column and row structure, heading structure, and the like. However, these data environments may be isolated from one another such that a user who is currently accessing one data environment cannot easily switch to accessing another data environment.
Consider the following example: the Minnesota state government records data about traffic violations for each county in isolated libraries. Thus, a state employee for Olmsted County has access to the data environment for traffic violations in Olmsted County. However, if the state employee wishes to access traffic violation data for a different county, such as Ramsey County, the state employee cannot easily gain access to the Ramsey County library since the libraries are isolated. In order to access the Ramsey County library, the Olmsted County employee may have to take additional steps, such as logging out of the traffic violation software and logging back in as a Ramsey County employee, or requesting that a network administrator restart and reload the Olmsted county server with the data libraries for Ramsey County.
A similar problem occurs in multi-tenant applications. A multi-tenant application is a single running instance of a program with multiple users simultaneously using the program. Oftentimes, a multi-tenant application uses multiple servers in order to isolate one tenant's data from another. Thus, one tenant cannot access another tenant's data servers without reloading or restarting one or more of the servers or setting up multiple instances of the multi-tenant application.
Another example of isolated data sets occurs when a cloud service provider hosts data environments for several clients in a common data center. In this example, each client's data is hosted on a separate virtual machine. A virtual machine effectively divides the resources of one computer amongst many users by simulating hardware components. An entire server can be virtualized in this manner, allowing several clients to share the resources of a single server without the knowledge that other clients are also using the server. Oftentimes, a client will duplicate data environments on multiple virtual machines in order to ensure isolation.
A third example of isolated data environments occurs with web-based server applications. One instance of this is a business analytics tool that allows a user to execute queries on a runtime environment (RTE). Running a report involves, for example, accessing sales data stored in the database and generating a visual representation of that sales data, such as a spreadsheet or pie chart of sales numbers. For example, a business stores sales data for all the countries in which sales have been made in isolated environments, one environment for each country. In this example, an associate salesperson is limited to access for US sales data due to her associate status, but she is not be allowed access to sales data for Canada. The associate salesperson is then promoted to regional manager, and is thus granted access to all sales data worldwide. However, due to the isolated nature of the data environments for each country, the new regional manager cannot easily switch from running reports for US sales to running reports for Canadian sales. Thus, the regional manager may need to log out as a US salesperson and log in as a Canadian salesperson. Alternatively, the regional manager may need to request that the US sales data server is restarted and reloaded with Canadian data.